package showgo.modell.stamm;

import java.util.ArrayList;
import java.util.List;

public class Ensemble {

    private List<Person> gruppe = new ArrayList<Person>();

    private String name;

    public Ensemble(String name, List<Person> gruppe) {
	super();
	this.gruppe = gruppe;
	this.setName(name);
    }

    public List<Person> getGruppe() {
	return gruppe;
    }

    public void setGruppe(List<Person> gruppe) {
	this.gruppe = gruppe;
    }

    public Ensemble flacheKopie() {
	// flache Kopie, da jede Person nur einmal existiert
	String neuerName = new String(name);
	Ensemble neuesEnsemble = new Ensemble(neuerName, gruppe);
	return neuesEnsemble;
    }

    public Ensemble tiefeKopie() {
	String neuerName = new String(name);
	List<Person> neueGruppe = new ArrayList<Person>();
	if (gruppe != null) {
	    for (int i = 0; i < gruppe.size(); i++) {
		neueGruppe.add(gruppe.get(i).tiefeKopie());
	    }
	}

	return new Ensemble(neuerName, neueGruppe);
    }

    public String getName() {
	return name;
    }

    public void setName(String name) {
	this.name = name;
    }

}
